#ifndef EDITORNOTASCOMPAS_H
#define EDITORNOTASCOMPAS_H

#include "editordatos.h"
#include "paneltabla.h"
#include "preparadortabla.h"

#include "compas.h"

class EditorNotasCompas : public EditorDatos
{
public:
	EditorNotasCompas(QWidget* ventanaPadre);
	~EditorNotasCompas();

	void setListaNotasCompas(const QList<NotaCompas>& listaNotasCompas) { this->listaNotasCompas = listaNotasCompas; }
	QList<NotaCompas> getListaNotasCompas() { return listaNotasCompas; }

private:
    bool mostrarDialogoSeleccion(NotaCompas& notaCompas); 

    QString getIdentificadorDialogo(bool edicion) { 
        return edicion ? "edicion nota compas" : "seleccion nota compas"; }

protected:
    void prepararTabla(PanelTabla* panelTabla, bool edicion);
    virtual void actualizarTabla();

    virtual void anadirDatos(NotaCompas& notaCompas) { 
        listaNotasCompas.append(notaCompas);
    }
    virtual void modificarDatos(int indice, NotaCompas& notaCompas) {
        listaNotasCompas[indice] = notaCompas;
    }
    virtual void eliminarDatos(int indice) { 
        listaNotasCompas.removeAt(indice);
    }

	bool editar(const QString& titulo, NotaCompas& notaCompas);

protected slots:
	void anadir() {}
    void nuevo();
    void modificar();
    void copiar() {};
    void eliminar();
    void subir();
    void bajar();
    void seleccionado() {}

public slots:
    void actualizar() { actualizarTabla(); }

protected:
    QList<NotaCompas> listaNotasCompas;
    PreparadorTabla<NotaCompas> preparadorTabla;  
};

#endif // EDITORNOTAS_H
